﻿using Simple.Tools.Entity.VerifyAttribute;
using Simple.Tools.Verify;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Simple.Test.Dto
{
	#region << 版 本 注 释 >>
	/*----------------------------------------------------------------
	 * 版权所有 (c) 2025   保留所有权利。
	 * CLR版本：4.0.30319.42000
	 * 公司名称：
	 * 命名空间：Simple.Test.Dto
	 * 唯一标识：a6771200-310c-4d9a-aad2-917954f3f5c6
	 * 文件名：TestDto
	 * 
	 * 创建者：dongming
	 * 电子邮箱：15688277399@163.com
	 * 创建时间：2025/6/18 15:21:13
	 * 版本：V1.0.0
	 * 描述：
	 *----------------------------------------------------------------*/
	#endregion << 版 本 注 释 >>
	internal class TestDto:IParameterVerify
	{
		
			public TestDto(bool IsInit)
			{
				if (IsInit)
				{
					test_int = 99;
					test_short = 10;
					test_double = 10;
					test_float = 10;
					test_decimal = 10;
					test_dateTime = DateTime.Now;
					test_timeSpan = new TimeSpan(10, 10, 10);
					test_byte = Byte.MinValue;
					test_byte++;

					test_string = "1";
					test_string1 = "9116476536533286954";
					test_long = 10;
					test_guid = Guid.NewGuid();
					//test_double = 1;
					//test_float = 1;

				}
				else
				{
					test_int = -1;
					test_short = -1;
					test_int = -1;
					test_short = -1;
					test_dateTime = DateTime.MinValue;
					test_timeSpan = TimeSpan.Zero;
					test_byte = Byte.MinValue;
					test_byte--;
					test_float = -1;
					test_decimal = -1;
					test_string = string.Empty;
					test_long = -1;
					test_guid = Guid.Empty;
				}
			}

			[CusRequired("test_int", max: 100, min: 10)]
			public int test_int { get; set; }
			[CusRequired("test_long", max: 100, min: 10)]
			public int test_long { get; set; }
			[CusRequired("test_short", max: 100, min: 10)]
			public short test_short { get; set; }
			[CusRequired("test_byte", max: 100, min: 10)]
			public byte test_byte { get; set; }
			[CusRequired("test_float", max: 100, min: 10)]
			public float test_float { get; set; }
			[CusRequired("test_double", max: 100, min: 10)]
			public double test_double { get; set; }
			[CusRequired("test_decimal", max: 100, min: 10)]
			public decimal test_decimal { get; set; }
			[CusRequired("test_string")]
			public string test_string { get; set; }

			[CusSize("test_string1", max: 100)]
			public string test_string1 { get; set; }
			public DateTime test_dateTime { get; set; }
			public TimeSpan test_timeSpan { get; set; }
			public Guid test_guid { get; set; }

	}
	
}
